﻿using System.Linq;
using VO;
using System.Collections.Generic;

namespace DAL
{
    public class ConvenioDAL
    {

        //#region Insert
        //public void Insert(Campanha obj)
        //{
        //    var contexto = new CallcenterEntities();
        //    var objC = new tbCCCampanha();
        //    objC = PopulaObjeto(obj, objC);
        //    contexto.AddTotbCCCampanha(objC);
        //    contexto.SaveChanges();
        //}
        //#endregion

        //#region Update
        //public void Update(Campanha obj)
        //{
        //    var contexto = new CallcenterEntities();
        //    var campanha = (from campanhaAux in contexto.tbCCCampanha
        //                    where campanhaAux.idCampanha == obj.idCampanha
        //                    select campanhaAux).First();
        //    PopulaObjeto(obj, campanha);
        //    contexto.SaveChanges();
        //}
        //#endregion

        //#region UpdateStatus
        //public void UpdateStatus(Campanha obj)
        //{
        //    var contexto = new CallcenterEntities();
        //    var campanha = (from campanhaAux in contexto.tbCCCampanha
        //                    where campanhaAux.idCampanha == obj.idCampanha
        //                    select campanhaAux).First();
        //    campanha.fgAtivo = obj.fgAtivo;
        //    contexto.SaveChanges();
        //}
        //#endregion

        //#region Delete
        //public void Delete(int idCampanha)
        //{
        //    var contexto = new CallcenterEntities();
        //    var campanha = (from campanhaAux in contexto.tbCCCampanha
        //                    where campanhaAux.idCampanha == idCampanha
        //                    select campanhaAux).First();
        //    contexto.DeleteObject(campanha);
        //    contexto.SaveChanges();
        //}
        //#endregion

        #region Select
        public IList<Convenio> Select()
        {
            var contexto = new CallcenterEntities();

            IQueryable<tbCCConvenio> convenio;

            convenio = (from convenioAux in contexto.tbCCConvenio
                        orderby convenioAux.Convenio
                        select convenioAux);

            //Carrega lista
            var list = PopulaObjeto(convenio);

            return list;
        }
        #endregion

        #region PopulaObjeto
        //protected static tbCCCampanha PopulaObjeto(Campanha obj, tbCCCampanha tabela)
        //{
        //    tabela.nomeCampanha = obj.nomeCampanha;
        //    tabela.descricao = obj.descricao;
        //    tabela.alias = obj.alias;
        //    tabela.Convenio = obj.Convenio;
        //    tabela.dtCadastro = obj.dtCadastro;
        //    tabela.dtFinalizacao = obj.dtFinalizacao;
        //    tabela.fgAtivo = true;
        //    tabela.idCampanha = obj.idCampanha;
        //    return tabela;
        //}

        protected static IList<Convenio> PopulaObjeto(IQueryable<tbCCConvenio> reader)
        {
            IList<Convenio> list = new List<Convenio>();
            foreach(var obj in reader)
            {
                var newObj = new Convenio();
                newObj.idEmpresa = obj.idEmpresa;
                newObj.NomeConvenio = obj.Convenio;
                list.Add(newObj);
            }
            return list;
        }
        #endregion

    }
}